home *** CD-ROM | disk | FTP | other *** search
- /*
- * $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $
- *
- * Copyright ⌐ 2000 Compaq Computer Corporation, Inc.
- * Copyright ⌐ 2002 Hewlett-Packard Company, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Compaq not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. HP makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Jim Gettys, HP Labs, HP.
- */
-
- #ifndef _XRANDR_H_
- #define _XRANDR_H_
-
- #include <X11/extensions/randr.h>
-
- #include <X11/Xfuncproto.h>
-
- _XFUNCPROTOBEGIN
-
-
- typedef struct {
- int width, height;
- int mwidth, mheight;
- } XRRScreenSize;
-
- /*
- * Events.
- */
-
- typedef struct {
- int type; /* event base */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* window which selected for this event */
- Window root; /* Root window for changed screen */
- Time timestamp; /* when the screen change occurred */
- Time config_timestamp; /* when the last configuration change */
- SizeID size_index;
- SubpixelOrder subpixel_order;
- Rotation rotation;
- int width;
- int height;
- int mwidth;
- int mheight;
- } XRRScreenChangeNotifyEvent;
-
-
- /* internal representation is private to the library */
- typedef struct _XRRScreenConfiguration XRRScreenConfiguration;
-
- Bool XRRQueryExtension (Display *dpy, int *event_basep, int *error_basep);
- Status XRRQueryVersion (Display *dpy,
- int *major_versionp,
- int *minor_versionp);
-
- XRRScreenConfiguration *XRRGetScreenInfo (Display *dpy,
- Drawable draw);
-
- void XRRFreeScreenConfigInfo (XRRScreenConfiguration *config);
-
- /*
- * Note that screen configuration changes are only permitted if the client can
- * prove it has up to date configuration information. We are trying to
- * insist that it become possible for screens to change dynamically, so
- * we want to ensure the client knows what it is talking about when requesting
- * changes.
- */
- Status XRRSetScreenConfig (Display *dpy,
- XRRScreenConfiguration *config,
- Drawable draw,
- int size_index,
- Rotation rotation,
- Time timestamp);
-
- /* added in v1.1, sorry for the lame name */
- Status XRRSetScreenConfigAndRate (Display *dpy,
- XRRScreenConfiguration *config,
- Drawable draw,
- int size_index,
- Rotation rotation,
- short rate,
- Time timestamp);
-
-
- Rotation XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation);
-
- Time XRRConfigTimes (XRRScreenConfiguration *config, Time *config_timestamp);
-
- XRRScreenSize *XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes);
-
- short *XRRConfigRates (XRRScreenConfiguration *config, int sizeID, int *nrates);
-
- SizeID XRRConfigCurrentConfiguration (XRRScreenConfiguration *config,
- Rotation *rotation);
-
- short XRRConfigCurrentRate (XRRScreenConfiguration *config);
-
- int XRRRootToScreen(Display *dpy, Window root);
-
- /*
- * returns the screen configuration for the specified screen; does a lazy
- * evalution to delay getting the information, and caches the result.
- * These routines should be used in preference to XRRGetScreenInfo
- * to avoid unneeded round trips to the X server. These are new
- * in protocol version 0.1.
- */
-
-
- XRRScreenConfiguration *XRRScreenConfig(Display *dpy, int screen);
- XRRScreenConfiguration *XRRConfig(Screen *screen);
- void XRRSelectInput(Display *dpy, Window window, int mask);
-
- /*
- * the following are always safe to call, even if RandR is not implemented
- * on a screen
- */
-
-
- Rotation XRRRotations(Display *dpy, int screen, Rotation *current_rotation);
- XRRScreenSize *XRRSizes(Display *dpy, int screen, int *nsizes);
- short *XRRRates (Display *dpy, int screen, int sizeID, int *nrates);
- Time XRRTimes (Display *dpy, int screen, Time *config_timestamp);
-
-
- /*
- * intended to take RRScreenChangeNotify, or
- * ConfigureNotify (on the root window)
- * returns 1 if it is an event type it understands, 0 if not
- */
- int XRRUpdateConfiguration(XEvent *event);
-
- _XFUNCPROTOEND
-
- #endif /* _XRANDR_H_ */
-